FrameLib  2.0
DSP processing with frames of arbitrary timing and length
FrameLib_Multistream Class Referenceabstract

a abstract class proving multi-stream connnections and the means to the number of streams in a network. More...

#include <FrameLib_Multistream.h>

Inheritance diagram for FrameLib_Multistream:
FrameLib_Object< FrameLib_Multistream > FrameLib_Queueable< FrameLib_Multistream > FrameLib_Expand< T >

Public Member Functions

virtual const FrameLib_Parameters::SerialgetSerialised ()=0
 
 FrameLib_Multistream (ObjectType type, FrameLib_Context context, FrameLib_Proxy *proxy, unsigned long nStreams, unsigned long nIns, unsigned long nOuts)
 
 FrameLib_Multistream (ObjectType type, FrameLib_Context context, FrameLib_Proxy *proxy, unsigned long nStreams)
 
virtual ~FrameLib_Multistream ()
 
 FrameLib_Multistream (const FrameLib_Multistream &)=delete
 
FrameLib_Multistreamoperator= (const FrameLib_Multistream &)=delete
 
unsigned long getNumStreams ()
 
- Public Member Functions inherited from FrameLib_Object< FrameLib_Multistream >
 FrameLib_Object (ObjectType type, FrameLib_Context context, FrameLib_Proxy *proxy)
 
virtual ~FrameLib_Object ()
 
ObjectType getType () const
 
FrameLib_Context getContext () const
 
FrameLib_ProxygetProxy () const
 
unsigned long getNumIns () const
 
unsigned long getNumOuts () const
 
unsigned long getNumAudioIns () const
 
unsigned long getNumAudioOuts () const
 
unsigned long getNumAudioChans () const
 
virtual void setFixedInput (unsigned long idx, double *input, unsigned long size)=0
 
virtual const double * getFixedInput (unsigned long idx, unsigned long *size)=0
 
virtual void blockUpdate (const double *const *ins, double **outs, unsigned long blockSize)=0
 
virtual void reset (double samplingRate, unsigned long maxBlockSize)=0
 
virtual std::string objectInfo (bool verbose=false)
 
virtual std::string inputInfo (unsigned long idx, bool verbose=false)
 
virtual std::string outputInfo (unsigned long idx, bool verbose=false)
 
virtual std::string audioInfo (unsigned long idx, bool verbose=false)
 
virtual FrameType inputType (unsigned long idx) const=0
 
virtual FrameType outputType (unsigned long idx) const=0
 
virtual const FrameLib_ParametersgetParameters () const
 
ConnectionResult addConnection (Connection connection, unsigned long inIdx)
 
void deleteConnection (unsigned long inIdx)
 
ConnectionResult addOrderingConnection (Connection connection)
 
void deleteOrderingConnection (Connection connection)
 
void clearOrderingConnections ()
 
void clearConnections ()
 
ConnectionResult setInputAlias (Connection alias, unsigned long inIdx)
 
ConnectionResult setOrderingAlias (FrameLib_Multistream *alias)
 
ConnectionResult setOutputAlias (Connection alias, unsigned long outIdx)
 
bool isConnected (unsigned long inIdx) const
 
Connection getConnection (unsigned long inIdx) const
 
bool supportsOrderingConnections () const
 
unsigned long getNumOrderingConnections () const
 
Connection getOrderingConnection (unsigned long idx) const
 
virtual void autoOrderingConnections ()=0
 
virtual void clearAutoOrderingConnections ()=0
 
void callConnectionUpdate ()
 
void addOutputDependencies (std::vector< U * > &dependencies)
 
void addOutputDependencies (std::vector< U * > &dependencies, unsigned long outIdx)
 
- Public Member Functions inherited from FrameLib_Queueable< FrameLib_Multistream >
 FrameLib_Queueable ()
 

Static Public Member Functions

static bool handlesAudio ()
 
- Static Public Member Functions inherited from FrameLib_Object< FrameLib_Multistream >
static bool handlesAudio ()
 

Protected Types

using BlockConnection = FrameLib_Object< FrameLib_Block >::Connection
 
using MultistreamOutput = std::vector< BlockConnection >
 
using MultistreamConnection = FrameLib_Object::Connection
 

Protected Member Functions

void setIO (unsigned long nIns, unsigned long nOuts, unsigned long nAudioChans=0)
 
unsigned long getInputNumChans (unsigned long inIdx)
 
BlockConnection getInputChan (unsigned long inIdx, unsigned long chan)
 
unsigned long getOrderingConnectionNumChans (unsigned long idx)
 
BlockConnection getOrderingConnectionChan (unsigned long idx, unsigned long chan)
 
- Protected Member Functions inherited from FrameLib_Object< FrameLib_Multistream >
void addOutputDependencies (Queue *queue)
 
void addOutputDependencies (Queue *queue, unsigned long outIdx)
 
Connection getConnectionInternal (unsigned long inIdx) const
 
Connection getOrderingConnectionInternal (unsigned long idx) const
 
void setIO (unsigned long nIns, unsigned long nOuts, unsigned long nAudioChans=0)
 
void enableOrderingConnections ()
 
U * alloc (unsigned long N)
 
void dealloc (U *&ptr)
 
void clearAllocator ()
 
FrameLib_LocalAllocator::StorageregisterStorage (const char *name)
 
void releaseStorage (FrameLib_LocalAllocator::Storage *&storage)
 
const double * getEmptyFixedInput (unsigned long idx, unsigned long *size)
 

Protected Attributes

std::vector< MultistreamOutputmOutputs
 

Additional Inherited Members

- Public Types inherited from FrameLib_Object< FrameLib_Multistream >
using Queue = typename FrameLib_Queueable< FrameLib_Multistream >::Queue
 
- Static Protected Member Functions inherited from FrameLib_Object< FrameLib_Multistream >
static const char * formatInfo (const char *verboseStr, const char *briefStr, bool verbose)
 
static std::string formatInfo (const char *str, unsigned long idx)
 
static std::string formatInfo (const char *verboseStr, const char *briefStr, unsigned long idx, bool verbose)
 
static std::string formatInfo (const char *str, const char *replaceStr)
 
static std::string formatInfo (const char *verboseStr, const char *briefStr, const char *replaceStr, bool verbose)
 
static std::string parameterInputInfo (bool verbose)
 
static std::string numberedString (const char *str, unsigned long idx)
 
static bool addUniqueItem (std::vector< U > &list, U item)
 
static bool deleteUniqueItem (std::vector< U > &list, U item)
 

Detailed Description

a abstract class proving multi-stream connnections and the means to the number of streams in a network.

Member Typedef Documentation

◆ BlockConnection

◆ MultistreamConnection

◆ MultistreamOutput

Constructor & Destructor Documentation

◆ FrameLib_Multistream() [1/3]

FrameLib_Multistream::FrameLib_Multistream ( ObjectType  type,
FrameLib_Context  context,
FrameLib_Proxy proxy,
unsigned long  nStreams,
unsigned long  nIns,
unsigned long  nOuts 
)
inline

◆ FrameLib_Multistream() [2/3]

FrameLib_Multistream::FrameLib_Multistream ( ObjectType  type,
FrameLib_Context  context,
FrameLib_Proxy proxy,
unsigned long  nStreams 
)
inline

◆ ~FrameLib_Multistream()

virtual FrameLib_Multistream::~FrameLib_Multistream ( )
inlinevirtual

◆ FrameLib_Multistream() [3/3]

FrameLib_Multistream::FrameLib_Multistream ( const FrameLib_Multistream )
delete

Member Function Documentation

◆ getInputChan()

FrameLib_Multistream::BlockConnection FrameLib_Multistream::getInputChan ( unsigned long  inIdx,
unsigned long  chan 
)
protected

◆ getInputNumChans()

unsigned long FrameLib_Multistream::getInputNumChans ( unsigned long  inIdx)
protected

◆ getNumStreams()

unsigned long FrameLib_Multistream::getNumStreams ( )
inline

◆ getOrderingConnectionChan()

FrameLib_Multistream::BlockConnection FrameLib_Multistream::getOrderingConnectionChan ( unsigned long  idx,
unsigned long  chan 
)
protected

◆ getOrderingConnectionNumChans()

unsigned long FrameLib_Multistream::getOrderingConnectionNumChans ( unsigned long  idx)
protected

◆ getSerialised()

virtual const FrameLib_Parameters::Serial* FrameLib_Multistream::getSerialised ( )
pure virtual

Implemented in FrameLib_Expand< T >.

◆ handlesAudio()

static bool FrameLib_Multistream::handlesAudio ( )
inlinestatic

◆ operator=()

FrameLib_Multistream& FrameLib_Multistream::operator= ( const FrameLib_Multistream )
delete

◆ setIO()

void FrameLib_Multistream::setIO ( unsigned long  nIns,
unsigned long  nOuts,
unsigned long  nAudioChans = 0 
)
inlineprotected

Member Data Documentation

◆ mOutputs

std::vector<MultistreamOutput> FrameLib_Multistream::mOutputs
protected

The documentation for this class was generated from the following files: